package liskov_substitution

import "fmt"

type GoodNormalBird struct {
	iID int
	sName string
}

func NewGoodNormalBird(id int, name string) *GoodNormalBird {
	return &GoodNormalBird{
		id,
		name,
	}
}


func (me *GoodNormalBird) ID() int {
	return me.iID
}

func (me *GoodNormalBird) Name() string {
	return me.sName
}

func (me *GoodNormalBird) Tweet() error {
	fmt.Printf("GoodNormalBird.Tweet, id=%v, name=%v\n", me.ID(), me.Name())
	return nil
}

